home *** CD-ROM | disk | FTP | other *** search
- /*************************** bv-bool-ops.h *****************************
-
- Purpose: External declarations for boolean operations implemented
- as bit vectors.
-
- Provenance: Written and tested by S. Wartik, April 1991.
-
- Notes: None.
-
- **/
-
- #ifndef TRUE
- # define TRUE 1
- # define FALSE 0
- typedef int boolean;
- #endif
-
- #define MAX_ELEMENTS 256
- #define WORDSIZE 8
-
- typedef struct { /* A set consists of the bounds */
- int lower; /* defined for it, and space to */
- int upper; /* record what's in it. */
- char bits[MAX_ELEMENTS/WORDSIZE];
- } set;
-
- typedef int elementType; /* The element type is defined as "int". It */
- /* could be changed to any scalar type. */
-
- #ifdef __STDC__
-
- extern void Create(int lower, int upper, set *s);
-
- extern void Clear(set *s);
- extern void Insert(set *s, elementType e);
- extern void Delete(set *s, elementType e);
-
- extern void Unite(set *s1, set *s2, set *s3);
- extern void Intersect(set *s1, set *s2, set *s3);
- extern void Subtract(set *s1, set *s2, set *s3);
-
- extern boolean Empty(set *s);
- extern boolean Member(set *s, elementType e);
-
- extern void Copy(set *source, set *destination);
-
- extern void Iterate(set *s, boolean (*f)());
-
- boolean Error_Occurred();
-
- #else
-
- extern void Create();
-
- extern void Clear();
- extern void Insert();
- extern void Delete();
-
- extern void Unite();
- extern void Intersect();
- extern void Subtract();
-
- extern boolean Empty();
- extern boolean Member();
-
- extern void Copy();
-
- extern void Iterate();
-
- extern boolean Error_Occurred();
-
- #endif
-